package com.scau.RBAC.service;

import com.scau.RBAC.model.entity.User;
import com.scau.RBAC.model.entity.Role;
import java.util.List;

/**
 * 用户服务接口，定义用户管理的业务逻辑方法
 */
public interface UserService {
    // 用户认证服务
    User authenticateUser(String username, String password);
    void logoutUser(Long userId);

    // 用户CRUD操作
    User createUser(User user);
    void updateUser(User user);
    void deleteUser(Long userId);
    User getUserById(Long userId);
    User getUserByUsername(String username);
    List<User> getAllUsers();
    List<User> getUsersByCondition(User condition);

    // 用户角色管理
    void assignRoleToUser(Long userId, String roleCode);
    void removeRoleFromUser(Long userId, String roleCode);
    void updateUserRoles(Long userId, List<String> roleCodes);
    List<Role> getUserRoles(Long userId);
    List<User> getUsersByRole(String roleCode);

    // 批量操作
    void batchCreateUsers(List<User> users);
    void batchAssignRoles(Long userId, List<String> roleCodes);
    void batchUpdateUserStatus(List<Long> userIds, boolean status);
}
